home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / TECHNICA / AUTOCAD / H107.ZIP / RENUMCNC.ZIP / RENUMCNC.BAS < prev    next >
BASIC Source File  |  1990-04-09  |  3KB  |  161 lines

  1. ' RENUMCNC - a utility to renumber cnc programs in the emco format
  2. ' starting with block '000' to whatever
  3. ' assumes file extension of .cnc -- renames old file to .old
  4. ' if .old exists it writes over it renumbered file written to .cnc
  5.  
  6. ' -------- start of program -------------
  7.  
  8. OPTION BASE 1
  9.  
  10. DEFINT A-Z
  11.  
  12. CONST true = -1
  13. CONST false = NOT true
  14. DIM isnumber AS INTEGER
  15.  
  16.  
  17. CLS
  18. LOCATE 10, 10
  19. PRINT "This program will renumber an existing cnc source file in EMCO format"
  20. LOCATE 12, 10
  21. PRINT "It assumes <infile>.CNC, and will copy the original to <infile>.old"
  22. LOCATE 14, 10
  23. PRINT "and will put the renumbered program in <infile>.CNC"
  24. LOCATE 16, 10
  25. INPUT "input name of file or <CTL>C to abort"; infile$
  26.  
  27. ' ---------------- OPEN FILES --------------------------
  28. infile$ = LTRIM$(RTRIM$(infile$))
  29.  
  30. temp = INSTR(infile$, ".")
  31.  
  32. IF (temp = 0) THEN
  33.      infile$ = infile$ + ".cnc"
  34. END IF
  35.  
  36. OPEN infile$ FOR INPUT ACCESS READ AS #1 LEN = 16284
  37.  
  38. temp = INSTR(infile$, ".")
  39.  
  40. IF temp = 0 THEN
  41.      oldfile$ = infile$ + ".old"
  42. ELSE
  43.      oldfile$ = LEFT$(infile$, (temp - 1))
  44.      oldfile$ = oldfile$ + ".old"
  45. END IF
  46.  
  47. OPEN oldfile$ FOR OUTPUT ACCESS WRITE AS #2 LEN = 16284
  48.  
  49. DO UNTIL EOF(1)
  50.  
  51. temp$ = ""
  52.  
  53. LINE INPUT #1, temp$
  54. PRINT #2, temp$
  55.  
  56. LOOP
  57.  
  58.  
  59. CLOSE
  60.  
  61. OPEN oldfile$ FOR INPUT ACCESS READ AS #1 LEN = 16284
  62. OPEN infile$ FOR OUTPUT ACCESS WRITE AS #2 LEN = 16284
  63.  
  64. BlockNo = 0
  65. BlockNo$ = ""
  66.  
  67. DO UNTIL EOF(1)
  68.  
  69. temp$ = ""
  70.  
  71. LINE INPUT #1, temp$
  72.  
  73.  
  74.  
  75. isnumber = true
  76. ' PRINT "isnumber at #1="; isnumber
  77.  
  78. IF (MID$(temp$, 4, 3) = "") THEN isnumber = false
  79. ' PRINT "is number at #2="; isnumber
  80.  
  81. IF (isnumber = true) THEN
  82. testval = ASC(MID$(temp$, 4, 1))
  83. ' PRINT testval
  84. ' SLEEP 1
  85. SELECT CASE testval
  86. CASE IS = 32
  87. ' nop
  88. CASE IS < 48
  89. isnumber = false
  90. CASE IS < 59
  91. ' nop
  92. CASE IS > 58
  93. isnumber = false
  94. CASE ELSE
  95. isnumber = false
  96. END SELECT
  97. END IF
  98. ' PRINT "isnumber at #3="; isnumber
  99.  
  100. IF (isnumber = true) THEN
  101. testval = ASC(MID$(temp$, 5, 1))
  102. SELECT CASE testval
  103. CASE IS = 32
  104. ' nop
  105. CASE IS < 48
  106. isnumber = false
  107. CASE IS < 59
  108. ' nop
  109. CASE IS > 58
  110. isnumber = false
  111. CASE ELSE
  112. isnumber = false
  113. END SELECT
  114. END IF
  115. ' PRINT "isnumber at #4="; isnumber
  116.  
  117. IF (isnumber = true) THEN
  118. testval = ASC(MID$(temp$, 6, 1))
  119. SELECT CASE testval
  120. CASE IS = 32
  121. ' nop
  122. CASE IS < 48
  123. isnumber = false
  124. CASE IS < 59
  125. ' nop
  126. CASE IS > 58
  127. isnumber = false
  128. CASE ELSE
  129. isnumber = false
  130. END SELECT
  131. END IF
  132. ' PRINT "isnumber at #5="; isnumber
  133.  
  134. IF (isnumber = true) THEN
  135.  
  136. BlockNo$ = STR$(BlockNo)
  137. BlockNo$ = LTRIM$(RTRIM$(BlockNo$))
  138.  
  139. WHILE LEN(BlockNo$) < 3
  140. BlockNo$ = "0" + BlockNo$
  141. WEND
  142.  
  143. PRINT BlockNo$
  144.  
  145. MID$(temp$, 4, 3) = BlockNo$
  146.  
  147. BlockNo = BlockNo + 1
  148.  
  149. END IF
  150. PRINT #2, temp$
  151.  
  152.  
  153. LOOP
  154.  
  155.  
  156. CLOSE
  157.  
  158. END
  159.  
  160.  
  161.